import store from '@/store';
const AccessibleRights = '';

export default (app) => {
  // 注册一个全局自定义指令 `v-hasRole`
  app.directive('hasRole', {
    // 当被绑定的元素插入到 DOM 中时……
    //mounted
    beforeMount(el, binding, vnode) {
      const bindRoles = binding.value;
      if(!Array.isArray(bindRoles)){
        throw new Error('请设置操作角色标签值');
      }
      const userRoles = store.state.userInfo.roles;
      if(userRoles instanceof Array && userRoles.length){
        //如果有一个元素满足条件，则表达式返回true，剩余的元素不会再执行检测，some()不会改变原始数组
        const hasRole = userRoles.some(item => {
          return bindRoles.includes(item.code);
        })
        if(!hasRole){
          //删除元素
          el.style.display = 'none';
          //貌似底下方法不起作用 只能暂时隐藏了
          //el.parentNode.removeChild(el);
        }
      }else{
        el.style.display = 'none';
      }
    }
  })
}
